<!DOCTYPE html>
<html>

<head lang="en">
	<meta charset="UTF-8">
	<title>登录</title>
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport"
		  content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
	<meta name="format-detection" content="telephone=no">
	<meta name="renderer" content="webkit">
	<meta http-equiv="Cache-Control" content="no-siteapp"/>

	<link rel="stylesheet" href="../AmazeUI-2.4.2/assets/css/amazeui.css"/>
	<link href="../css/dlstyle.css" rel="stylesheet" type="text/css">
	<script src="./AmazeUI-2.4.2/assets/js/jquery.min.js"></script>
	<script src="./AmazeUI-2.4.2/assets/js/amazeui.min.js"></script>
	<!--vue axios引入-->
	<script src="js/plugins/vue/dist/vue.js"></script>
	<script src="js/plugins/axios/dist/axios.js"></script>
	<script src="js/common.js"></script>
</head>

<body>

<div class="login-boxtitle">
	<a href="home.html"><img alt="logo" src="../images/logobig.png"/></a>
</div>

<div class="login-banner" id="loginForm">
	<div class="login-main">
		<div class="login-banner-bg"><span></span><img src="../images/big.jpg"/></div>
		<div class="login-box am-tabs" id="doc-my-tabs">
			<ul class="am-tabs-nav am-nav am-nav-tabs am-nav-justify">
				<li class="am-active"><a href="" @click="account">账号登录</a></li>
				<li><a href="" @click="verificationCode">验证码登录</a></li>
			</ul>
			<div class="clear"></div>
			<div class="am-tabs-bd">
				<!--账号登录-->
				<div class="am-tab-panel am-active">
					<form>
						<div class="user-name">
							<label for="user"><i class="am-icon-user"></i></label>
							<input type="text" v-model="user.username" name="" id="user" placeholder="邮箱/手机/用户名">
						</div>
						<div class="user-pass">
							<label for="password"><i class="am-icon-lock"></i></label>
							<input type="password" v-model="user.password" name="" id="password" placeholder="请输入密码">
						</div>
						<div class="am-cf">
							<input type="button" @click="accountLogin" name="" value="登 录" class="am-btn am-btn-primary am-btn-sm">
						</div>
					</form>
					<div class="login-links">
						<label for="remember-me"><input id="remember-me" type="checkbox">记住密码</label>
						<a href="#" class="am-fr">忘记密码</a>
						<a href="register.html" class="zcnext am-fr am-btn-default">注册</a>
						<br/>
					</div>
				</div>

				<!--验证码登录-->
				<div class="am-tab-panel">
					<form>
						<div class="user-name">
							<label for="username"><i class="am-icon-user"></i></label>
							<input type="text" v-model="user.username" name="" id="username" placeholder="邮箱/手机">
						</div>
						<div class="user-phone">
							<label for="imageCode"><i class="am-icon-check am-icon-sm"></i></label>
							<input type="text" name="" v-model="user.codeValue" style="width: 180px;"
								   id="imageCode" placeholder="请输入图片验证码">
							<img @click="getImageCode" :src="imageCode"
								 class="captcha-image-temp" alt="点击换图" title="点击换图"
								 style="vertical-align: middle; cursor: pointer;">
						</div>
						<div class="user-pass">
							<label for="password"><i class="am-icon-lock"></i></label>
							<input type="password" v-model="user.password" name="" style="width: 180px" id="codeValue" placeholder="请输入验证码">
							<butten class="btn" href="javascript:void(0);" @click="sendCode"
									id="sendCode">获取</butten>
						</div>
						<div class="am-cf">
							<input type="button" @click="codeLogin" name="" value="登  录" class="am-btn am-btn-primary am-btn-sm">
						</div>
					</form>
				</div>
				<script>
					$(function () {
						$('#doc-my-tabs').tabs();
					})
				</script>
			</div>
			<div class="partner">
				<h3>合作账号</h3>
				<div class="am-btn-group">
					<li><a href="#"><i class="am-icon-qq am-icon-sm"></i><span>QQ登录</span></a></li>
					<li><a href="#"><i class="am-icon-weibo am-icon-sm"></i><span>微博登录</span> </a></li>
					<li><a href="https://open.weixin.qq.com/connect/qrconnect?appid=wxd853562a0548a7d0&redirect_uri=http://bugtracker.itsource.cn/callback.html&response_type=code&scope=snsapi_login&state=9527#wechat_redirect"><i class="am-icon-weixin am-icon-sm"></i><span>微信登录</span> </a></li>
				</div>
			</div>

		</div>
	</div>
</div>


<div class="footer ">
	<div class="footer-hd ">
		<p>
			<a href="# ">恒望科技</a>
			<b>|</b>
			<a href="# ">商城首页</a>
			<b>|</b>
			<a href="# ">支付宝</a>
			<b>|</b>
			<a href="# ">物流</a>
		</p>
	</div>
	<div class="footer-bd ">
		<p>
			<a href="# ">关于恒望</a>
			<a href="# ">合作伙伴</a>
			<a href="# ">联系我们</a>
			<a href="# ">网站地图</a>
			<em>© 2015-2025 Hengwang.com 版权所有. 更多模板 <a href="http://www.cssmoban.com/" target="_blank"
													   title="模板之家">模板之家</a> - Collect from <a
					href="http://www.cssmoban.com/" title="网页模板" target="_blank">网页模板</a></em>
		</p>
	</div>
</div>
</body>

<script type="text/javascript">
	new Vue({
		el: "#loginForm",
		data: {
			imageCode:'',
			imageCodePrefix:"data:image/jpeg;base64,",
			user: {
				username: '',
				password: '',
				codeValue: '',
				type: 1,
			},
		},
		methods: {
			accountLogin() {
				// 1.判断手机号是否
				if (!this.user.username) {
					alert("账号不能为空");
					// 终止
					event.preventDefault();
					return false;
				}
				// 2.判断图片验证码是否
				if (!this.user.password) {
					alert("密码不能为空");
					event.preventDefault();
					return false;
				}
				this.$http.post("/login/account", this.user)
						.then(result => {
							result = result.data;
							if (result.success) { // 登录成功
								let {token, logininfo} = result.resultObj;
								localStorage.setItem("token", token);
								localStorage.setItem("logininfo", JSON.stringify(logininfo));
								// 2.跳转首页
								location.href = "index.html";
							} else { // 登录失败
								alert(result.message);
							}
						})
						.catch(result => {
							console.log(result)
							alert("系统繁忙，请稍后重试！");
						});
			},
			// 1.生成UUID的方法
			createUuid() {
				var s = [];
				var hexDigits = "0123456789abcdefghi";
				for (var i = 0; i < 36; i++) {
					s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
				}
				s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
				s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
				s[8] = s[13] = s[18] = s[23] = "-";

				var uuid = s.join("");
				return uuid;
			},

			// 2.发起Axios请求获取图形验证码的方法
			getImageCode(){
				// 2.1.从localStorage中获取UUID
				let imageCodeKey = localStorage.getItem("registerImageCodeKey");
				// 2.2.判断当前浏览器本地是否有key值，没有则生成，有则直接使用
				if(!imageCodeKey || imageCodeKey === ''){
					imageCodeKey = this.createUuid();
					localStorage.setItem("registerImageCodeKey",imageCodeKey);
				}
				// 2.3.发送Axios请求，传递UUID，得到图形验证码的Base64字符串
				this.$http.get("/verifyCode/image/"+imageCodeKey).then(result=>{
					// 2.3.1.将接口返回的图形验证码Base64字符串码+前缀赋值给模型中的imageCode字段
					this.imageCode = this.imageCodePrefix+result.data.resultObj;
				})
			},
			verificationCode() {
				this.user = {
					username: '',
					password: '',
					codeValue: '',
					type: 1,
				};
				this.getImageCode();
			},
			account() {
				this.user = {
					username: '',
					password: '',
					codeValue: '',
					type: 1,
				}
			},
			// 获取验证码
			sendCode(event) {
				// 1.判断手机号是否为空
				if (!this.user.username) {
					alert("账号不能为空");
					// 终止
					event.preventDefault();
					return false;
				}
				// 2.判断图片验证码是否为空
				if (!this.user.codeValue) {
					alert("图形验证码不能为空");
					event.preventDefault();
					return false;
				}
				// 3.获取按钮，禁用按钮
				var sendBtn = $(event.target);
				sendBtn.attr("disabled", true);

				// 4.给图形验证码RedisKey赋值
				this.user.imageCodeKey = localStorage.getItem("registerImageCodeKey");

				//5.发送ajax请求
				this.$http.post("/login/sendCode", this.user).then(res => {
					var ajaxResult = res.data;
					if (ajaxResult.success) {
						alert("验证码已经发送到成功，请在3分钟内使用");
						//5.1.发送成：倒计时
						var time = 60;
						var interval = window.setInterval(function () {
							//每一条倒计时减一
							time = time - 1;

							//把倒计时时间搞到按钮上
							sendBtn.html(time + "秒后重发");

							//5.2.倒计时完成恢复按钮
							if (time <= 0) {
								sendBtn.html("重新发送");
								sendBtn.attr("disabled", false);
								//清除定时器
								window.clearInterval(interval);
							}
						}, 1000);
					} else {
						//5.3.发送失败：提示，恢复按钮
						sendBtn.attr("disabled", false);
						alert("发送失败:" + ajaxResult.message);
						this.getImageCode();
					}
				})
			},
			codeLogin(){
				// 1.判断手机号是否为空
				if (!this.user.username) {
					alert("账号不能为空");
					// 终止
					event.preventDefault();
					return false;
				}
				// 2.判断图片验证码是否为空
				if (!this.user.password) {
					alert("验证码不能为空");
					event.preventDefault();
					return false;
				}
				// 3.获取按钮，禁用按钮
				var sendBtn = $(event.target);
				sendBtn.attr("disabled", true);
				//5.发送ajax请求
				this.$http.post("/login/codeLogin", this.user).then(result => {
					result = result.data;
					if (result.success) { // 登录成功
						let {token, logininfo} = result.resultObj;
						localStorage.setItem("token", token);
						localStorage.setItem("logininfo", JSON.stringify(logininfo));
						// 2.跳转首页
						location.href = "index.html";
					} else { // 登录失败
						alert(result.message);
					}
				})
						.catch(result => {
							console.log(result)
							alert("系统繁忙，请稍后重试！");
						});
			}
		},
		mounted() {
			this.getImageCode();
		}
	})
</script>

</html>